package org.ki.gra;

import com.badlogic.gdx.scenes.scene2d.Action;
import com.badlogic.gdx.scenes.scene2d.OnActionCompleted;
import com.badlogic.gdx.scenes.scene2d.actions.MoveTo;
import com.badlogic.gdx.utils.Pool;
import org.ki.gra.aktorzy.AnimowanyAktor;

/**
 * User: kieronsk
 * Date: 10/11/12
 * Time: 5:10 PM
 */
public class AktorPool extends Pool<AnimowanyAktor> implements OnActionCompleted {

    @Override
    protected AnimowanyAktor newObject() {
        AnimowanyAktor a = new AnimowanyAktor("data/biegacz.png",6,5,1f);
        a.x = -1;
        a.y = 0;
        a.width = a.getProporcje();
        a.height = 1;

        return a;
    }

    @Override
    public AnimowanyAktor obtain() {
        AnimowanyAktor aktor = super.obtain();
        float speed = (float) (2f+Math.random() * 3f);
        float size = (float) (1.1f - Math.random()*0.2f);
        aktor.height = size;
        aktor.width = size * aktor.getProporcje();
        aktor.x=-1;
        aktor.setSpeed(0.01f*speed);
        MoveTo moveTo = MoveTo.$(10,0,speed);
        moveTo.setCompletionListener(this);
        aktor.action(moveTo);
        return aktor;
    }

    @Override
    public void completed(Action action) {
        AnimowanyAktor aktor = (AnimowanyAktor)action.getTarget();
        aktor.remove();
        free(aktor);
    }
}
